perm filename LOADUP[DEN,LMM] blob sn#070830 filedate 1973-11-07 generic text, type T, neo UTF8
(FILECREATED " 7-NOV-73  5:25:12" S-LOADUP)


  (LISPXPRINT (QUOTE LOADUPVARS)
              T)
  (RPAQQ LOADUPVARS ((FNS STARTUP STARTLOAD LOADDEF FILEOF FILESOF)
          (VARS S-STRGENFILES)))
(DEFINEQ

(STARTUP
  [LAMBDA (NOTCOMFLG NOTSOURCEFLG FILES)        (* Used to create the 
                                                system)
    [AND (OR (NULL NOTCOMFLG)
             (NULL NOTSOURCEFLG))
         (MAPC (OR FILES (SETQ FILES S-STRGENFILES))
               (FUNCTION (LAMBDA (FILE COMFILE GOTCOM)
                   (SETQ COMFILE (PACK (LIST FILE ".COM")))
                   [SETQ GOTCOM (OR (MEMB COMFILE FILELST)
                                    (AND (NOT NOTCOMFLG)
                                         (INFILEP COMFILE)
                                         (STARTLOAD COMFILE]
                   [OR NOTSOURCEFLG (STARTLOAD FILE
                                               (AND GOTCOM
                                                    (QUOTE PROP]
                   (/PUT FILE (QUOTE FILE)
                         (LIST NIL (PACK (LIST (MKATOM (SUBSTRING
                                                         FILE 3))
                                               "VARS"]
    (COND
      ((AND (OR (MEMB (QUOTE S-EXPAND)
                      FILELST)
                (MEMB (QUOTE S-EXPAND.COM)
                      FILELST))
            (EQ (Y/N ((N . o)
                      (Y . es))
                     "Turn on and off? ")
                (QUOTE Y)))
        (TURNOFF (FIXFN (QUOTE MOLECULES)
                        (QUOTE L)
                        (QUOTE N)
                        (QUOTE (NIL])

(STARTLOAD
  [LAMBDA (FILE LOADFLG EVENIFLOADED)
    (COND
      ((AND (NOT EVENIFLOADED)
            (MEMB FILE FILELST))
        (LISPXPRINT (CONS FILE (QUOTE (already loaded)))
                    T))
      ((EQ LOADFLG (QUOTE PROP))
        (LISPXPRINT (LIST (QUOTE loading)
                          FILE)
                    T)
        (LOADFNS T FILE LOADFLG)
        (SAVESETQ FILELST (CONS FILE FILELST)))
      (T (LOAD FILE LOADFLG)))
    FILE])

(LOADDEF
  [LAMBDA (FN ONLYTHISONEFLG)

          (* Loads the definitions of all of the functions 
          in the file which contains FN -
          However, if ONLYTHISONEFLG is on, just loads the 
          definition of this one function)


    (PROG [(FILE (NAMEFIELD (OR (FILEOF FN)
                                (ERROR FN "not found on any file"]
          (COND
            (ONLYTHISONEFLG (LOADFNS (LIST FN)
                                     FILE
                                     (QUOTE PROP)))
            (T (STARTLOAD FILE (QUOTE PROP])

(FILEOF
  [LAMBDA (FN)
    (CAR (SOME FILELST (FUNCTION (LAMBDA (FILE)
                   (OR (MEMB FN (CAR (FILEFNS FILE)))
                       (NEWFILE2 FN (CAR (FILEVARS FILE))
                                 (QUOTE FNS])

(FILESOF
  [LAMBDA (FN)
    (SUBSET FILELST (FUNCTION (LAMBDA (FILE)
                (OR (MEMB FN (CAR (FILEFNS FILE)))
                    (NEWFILE2 FN (CAR (FILEVARS FILE))
                              (QUOTE FNS])
)
  (RPAQQ S-STRGENFILES
         (S-LOADUP S-TOTAL S-GENLISP S-BACKTRACK S-CL S-CYCLIC S-DICT 
                   S-CATALOG S-DRAW S-EXAMPLE S-EXPAND S-EXPLAIN 
                   S-GROUP S-LABELER S-NEWGEN S-STRUCTURE S-TOPLEVEL 
                   S-TREE))
STOP